package com.demo;

import com.demo.config.AppConfig;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

import javax.servlet.MultipartConfigElement;
import javax.servlet.ServletRegistration;

public class WebMvcInit extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{AppConfig.class};
    }

    //获取到对应链接请求则进行响应
    //例如/test为请求，此时localhost/test不响应，localhost/app/test响应
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/app/*"};
    }

    @Override
    protected void customizeRegistration(ServletRegistration.Dynamic registration) {
        // 如果不提供multi-part配置，就算配置了StandardServletMultipartResolver的Bean，也会报下面的异常
        // java.lang.IllegalStateException: 由于没有提供multi-part配置，无法处理parts
        // 查看 MultipartConfigElement 类的说明
        // 下面是设置了tomcat的暂存上传文件的临时目录
        registration.setMultipartConfig(new MultipartConfigElement("/uploadtemp"));
    }
}
